TPTP Problem File: ITP103^2.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP103^2 : TPTP v8.2.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer ListSlice problem prob_142__5617098_1
% Version  : Especial.
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source   : [Des21]
% Names    : ListSlice/prob_142__5617098_1 [Des21]

% Status   : Theorem
% Rating   : 0.00 v8.1.0, 0.25 v7.5.0
% Syntax   : Number of formulae    :  324 (  93 unt;  43 typ;   0 def)
%            Number of atoms       :  882 ( 307 equ;   0 cnn)
%            Maximal formula atoms :    6 (   3 avg)
%            Number of connectives : 3563 ( 105   ~;  33   |;  65   &;2956   @)
%                                         (   0 <=>; 404  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   16 (   7 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   50 (  50   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   42 (  41 usr;   3 con; 0-4 aty)
%            Number of variables   :  799 (  10   ^; 730   !;  23   ?; 799   :)
%                                         (  36  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 16:16:25.126
%------------------------------------------------------------------------------
% Could-be-implicit typings (4)
thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_List_Olist,type,
    list: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

% Explicit typings (39)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : $o ).

thf(sy_cl_Nat_Osize,type,
    size: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ozero,type,
    zero: 
      !>[A: $tType] : $o ).

thf(sy_cl_Fields_Ofield,type,
    field: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Omult__zero,type,
    mult_zero: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Oordered__ring,type,
    ordered_ring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Owellorder,type,
    wellorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Fields_Odivision__ring,type,
    division_ring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Parity_Osemiring__bits,type,
    semiring_bits: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Osemidom__divide,type,
    semidom_divide: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Osemigroup__mult,type,
    semigroup_mult: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__idom,type,
    linordered_idom: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__ring,type,
    linordered_ring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Oordered__semiring,type,
    ordered_semiring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Fields_Olinordered__field,type,
    linordered_field: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Oab__semigroup__mult,type,
    ab_semigroup_mult: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Oordered__semiring__0,type,
    ordered_semiring_0: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Oordered__comm__semiring,type,
    ordere1490568538miring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__ring__strict,type,
    linord581940658strict: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Osemiring__no__zero__divisors,type,
    semiri1193490041visors: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__semiring__strict,type,
    linord20386208strict: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__nonzero__semiring,type,
    linord1659791738miring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
    canoni770627133id_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__comm__semiring__strict,type,
    linord893533164strict: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Osemiring__no__zero__divisors__cancel,type,
    semiri1923998003cancel: 
      !>[A: $tType] : $o ).

thf(sy_cl_Euclidean__Division_Oeuclidean__semiring__cancel,type,
    euclid191655569cancel: 
      !>[A: $tType] : $o ).

thf(sy_c_Groups_Otimes__class_Otimes,type,
    times_times: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Groups_Ozero__class_Ozero,type,
    zero_zero: 
      !>[A: $tType] : A ).

thf(sy_c_List_Oproduct,type,
    product: 
      !>[A: $tType,B: $tType] : ( ( list @ A ) > ( list @ B ) > ( list @ ( product_prod @ A @ B ) ) ) ).

thf(sy_c_Nat_OSuc,type,
    suc: nat > nat ).

thf(sy_c_Nat_Osize__class_Osize,type,
    size_size: 
      !>[A: $tType] : ( A > nat ) ).

thf(sy_c_Orderings_Oord__class_Oless,type,
    ord_less: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Rings_Odivide__class_Odivide,type,
    divide_divide: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_v_k,type,
    k: nat ).

thf(sy_v_n,type,
    n: nat ).

thf(sy_v_xs,type,
    xs: list @ a ).

% Relevant facts (253)
thf(fact_0_div__mult__self__is__m,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
     => ( ( divide_divide @ nat @ ( times_times @ nat @ M @ N ) @ N )
        = M ) ) ).

% div_mult_self_is_m
thf(fact_1_div__mult__self1__is__m,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
     => ( ( divide_divide @ nat @ ( times_times @ nat @ N @ M ) @ N )
        = M ) ) ).

% div_mult_self1_is_m
thf(fact_2_nat__mult__div__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( K
          = ( zero_zero @ nat ) )
       => ( ( divide_divide @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
          = ( zero_zero @ nat ) ) )
      & ( ( K
         != ( zero_zero @ nat ) )
       => ( ( divide_divide @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
          = ( divide_divide @ nat @ M @ N ) ) ) ) ).

% nat_mult_div_cancel_disj
thf(fact_3_div__less,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( ( divide_divide @ nat @ M @ N )
        = ( zero_zero @ nat ) ) ) ).

% div_less
thf(fact_4_div__by__Suc__0,axiom,
    ! [M: nat] :
      ( ( divide_divide @ nat @ M @ ( suc @ ( zero_zero @ nat ) ) )
      = M ) ).

% div_by_Suc_0
thf(fact_5_mult__less__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less @ nat @ ( times_times @ nat @ M @ K ) @ ( times_times @ nat @ N @ K ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
        & ( ord_less @ nat @ M @ N ) ) ) ).

% mult_less_cancel2
thf(fact_6_nat__0__less__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( times_times @ nat @ M @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
        & ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ) ).

% nat_0_less_mult_iff
thf(fact_7_nat__mult__less__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
        & ( ord_less @ nat @ M @ N ) ) ) ).

% nat_mult_less_cancel_disj
thf(fact_8_mult__eq__1__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ N )
        = ( suc @ ( zero_zero @ nat ) ) )
      = ( ( M
          = ( suc @ ( zero_zero @ nat ) ) )
        & ( N
          = ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% mult_eq_1_iff
thf(fact_9_one__eq__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( suc @ ( zero_zero @ nat ) )
        = ( times_times @ nat @ M @ N ) )
      = ( ( M
          = ( suc @ ( zero_zero @ nat ) ) )
        & ( N
          = ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% one_eq_mult_iff
thf(fact_10_less__Suc0,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ N @ ( suc @ ( zero_zero @ nat ) ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% less_Suc0
thf(fact_11_zero__less__Suc,axiom,
    ! [N: nat] : ( ord_less @ nat @ ( zero_zero @ nat ) @ ( suc @ N ) ) ).

% zero_less_Suc
thf(fact_12_old_Onat_Oinject,axiom,
    ! [Nat: nat,Nat2: nat] :
      ( ( ( suc @ Nat )
        = ( suc @ Nat2 ) )
      = ( Nat = Nat2 ) ) ).

% old.nat.inject
thf(fact_13_nat_Oinject,axiom,
    ! [X2: nat,Y2: nat] :
      ( ( ( suc @ X2 )
        = ( suc @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% nat.inject
thf(fact_14_bot__nat__0_Onot__eq__extremum,axiom,
    ! [A2: nat] :
      ( ( A2
       != ( zero_zero @ nat ) )
      = ( ord_less @ nat @ ( zero_zero @ nat ) @ A2 ) ) ).

% bot_nat_0.not_eq_extremum
thf(fact_15_less__nat__zero__code,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_nat_zero_code
thf(fact_16_neq0__conv,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
      = ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% neq0_conv
thf(fact_17_Suc__less__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( suc @ M ) @ ( suc @ N ) )
      = ( ord_less @ nat @ M @ N ) ) ).

% Suc_less_eq
thf(fact_18_Suc__mono,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( ord_less @ nat @ ( suc @ M ) @ ( suc @ N ) ) ) ).

% Suc_mono
thf(fact_19_lessI,axiom,
    ! [N: nat] : ( ord_less @ nat @ N @ ( suc @ N ) ) ).

% lessI
thf(fact_20_mult__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ K )
        = ( times_times @ nat @ N @ K ) )
      = ( ( M = N )
        | ( K
          = ( zero_zero @ nat ) ) ) ) ).

% mult_cancel2
thf(fact_21_mult__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times @ nat @ K @ M )
        = ( times_times @ nat @ K @ N ) )
      = ( ( M = N )
        | ( K
          = ( zero_zero @ nat ) ) ) ) ).

% mult_cancel1
thf(fact_22_mult__0__right,axiom,
    ! [M: nat] :
      ( ( times_times @ nat @ M @ ( zero_zero @ nat ) )
      = ( zero_zero @ nat ) ) ).

% mult_0_right
thf(fact_23_mult__is__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ N )
        = ( zero_zero @ nat ) )
      = ( ( M
          = ( zero_zero @ nat ) )
        | ( N
          = ( zero_zero @ nat ) ) ) ) ).

% mult_is_0
thf(fact_24_div__mult__mult1__if,axiom,
    ! [A: $tType] :
      ( ( euclid191655569cancel @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ( C
              = ( zero_zero @ A ) )
           => ( ( divide_divide @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
              = ( zero_zero @ A ) ) )
          & ( ( C
             != ( zero_zero @ A ) )
           => ( ( divide_divide @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
              = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ) ).

% div_mult_mult1_if
thf(fact_25_div__mult__mult2,axiom,
    ! [A: $tType] :
      ( ( euclid191655569cancel @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) )
            = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ).

% div_mult_mult2
thf(fact_26_div__mult__mult1,axiom,
    ! [A: $tType] :
      ( ( euclid191655569cancel @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
            = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ).

% div_mult_mult1
thf(fact_27_measure__induct__rule,axiom,
    ! [B: $tType,A: $tType] :
      ( ( wellorder @ B )
     => ! [F: A > B,P: A > $o,A2: A] :
          ( ! [X: A] :
              ( ! [Y: A] :
                  ( ( ord_less @ B @ ( F @ Y ) @ ( F @ X ) )
                 => ( P @ Y ) )
             => ( P @ X ) )
         => ( P @ A2 ) ) ) ).

% measure_induct_rule
thf(fact_28_measure__induct,axiom,
    ! [B: $tType,A: $tType] :
      ( ( wellorder @ B )
     => ! [F: A > B,P: A > $o,A2: A] :
          ( ! [X: A] :
              ( ! [Y: A] :
                  ( ( ord_less @ B @ ( F @ Y ) @ ( F @ X ) )
                 => ( P @ Y ) )
             => ( P @ X ) )
         => ( P @ A2 ) ) ) ).

% measure_induct
thf(fact_29_n__not__Suc__n,axiom,
    ! [N: nat] :
      ( N
     != ( suc @ N ) ) ).

% n_not_Suc_n
thf(fact_30_Suc__inject,axiom,
    ! [X3: nat,Y3: nat] :
      ( ( ( suc @ X3 )
        = ( suc @ Y3 ) )
     => ( X3 = Y3 ) ) ).

% Suc_inject
thf(fact_31_infinite__descent__measure,axiom,
    ! [A: $tType,P: A > $o,V: A > nat,X3: A] :
      ( ! [X: A] :
          ( ~ ( P @ X )
         => ? [Y: A] :
              ( ( ord_less @ nat @ ( V @ Y ) @ ( V @ X ) )
              & ~ ( P @ Y ) ) )
     => ( P @ X3 ) ) ).

% infinite_descent_measure
thf(fact_32_linorder__neqE__nat,axiom,
    ! [X3: nat,Y3: nat] :
      ( ( X3 != Y3 )
     => ( ~ ( ord_less @ nat @ X3 @ Y3 )
       => ( ord_less @ nat @ Y3 @ X3 ) ) ) ).

% linorder_neqE_nat
thf(fact_33_infinite__descent,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ~ ( P @ N2 )
         => ? [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
              & ~ ( P @ M2 ) ) )
     => ( P @ N ) ) ).

% infinite_descent
thf(fact_34_nat__less__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ! [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
             => ( P @ M2 ) )
         => ( P @ N2 ) )
     => ( P @ N ) ) ).

% nat_less_induct
thf(fact_35_less__irrefl__nat,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ N ) ).

% less_irrefl_nat
thf(fact_36_less__not__refl3,axiom,
    ! [S: nat,T: nat] :
      ( ( ord_less @ nat @ S @ T )
     => ( S != T ) ) ).

% less_not_refl3
thf(fact_37_less__not__refl2,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ N @ M )
     => ( M != N ) ) ).

% less_not_refl2
thf(fact_38_less__not__refl,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ N ) ).

% less_not_refl
thf(fact_39_nat__neq__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( M != N )
      = ( ( ord_less @ nat @ M @ N )
        | ( ord_less @ nat @ N @ M ) ) ) ).

% nat_neq_iff
thf(fact_40_size__neq__size__imp__neq,axiom,
    ! [A: $tType] :
      ( ( size @ A )
     => ! [X3: A,Y3: A] :
          ( ( ( size_size @ A @ X3 )
           != ( size_size @ A @ Y3 ) )
         => ( X3 != Y3 ) ) ) ).

% size_neq_size_imp_neq
thf(fact_41_not0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
     => ? [M3: nat] :
          ( N
          = ( suc @ M3 ) ) ) ).

% not0_implies_Suc
thf(fact_42_old_Onat_Oinducts,axiom,
    ! [P: nat > $o,Nat: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [Nat3: nat] :
            ( ( P @ Nat3 )
           => ( P @ ( suc @ Nat3 ) ) )
       => ( P @ Nat ) ) ) ).

% old.nat.inducts
thf(fact_43_old_Onat_Oexhaust,axiom,
    ! [Y3: nat] :
      ( ( Y3
       != ( zero_zero @ nat ) )
     => ~ ! [Nat3: nat] :
            ( Y3
           != ( suc @ Nat3 ) ) ) ).

% old.nat.exhaust
thf(fact_44_Zero__not__Suc,axiom,
    ! [M: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ M ) ) ).

% Zero_not_Suc
thf(fact_45_Zero__neq__Suc,axiom,
    ! [M: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ M ) ) ).

% Zero_neq_Suc
thf(fact_46_Suc__neq__Zero,axiom,
    ! [M: nat] :
      ( ( suc @ M )
     != ( zero_zero @ nat ) ) ).

% Suc_neq_Zero
thf(fact_47_zero__induct,axiom,
    ! [P: nat > $o,K: nat] :
      ( ( P @ K )
     => ( ! [N2: nat] :
            ( ( P @ ( suc @ N2 ) )
           => ( P @ N2 ) )
       => ( P @ ( zero_zero @ nat ) ) ) ) ).

% zero_induct
thf(fact_48_diff__induct,axiom,
    ! [P: nat > nat > $o,M: nat,N: nat] :
      ( ! [X: nat] : ( P @ X @ ( zero_zero @ nat ) )
     => ( ! [Y4: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y4 ) )
       => ( ! [X: nat,Y4: nat] :
              ( ( P @ X @ Y4 )
             => ( P @ ( suc @ X ) @ ( suc @ Y4 ) ) )
         => ( P @ M @ N ) ) ) ) ).

% diff_induct
thf(fact_49_nat__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [N2: nat] :
            ( ( P @ N2 )
           => ( P @ ( suc @ N2 ) ) )
       => ( P @ N ) ) ) ).

% nat_induct
thf(fact_50_nat_OdiscI,axiom,
    ! [Nat: nat,X2: nat] :
      ( ( Nat
        = ( suc @ X2 ) )
     => ( Nat
       != ( zero_zero @ nat ) ) ) ).

% nat.discI
thf(fact_51_old_Onat_Odistinct_I1_J,axiom,
    ! [Nat2: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ Nat2 ) ) ).

% old.nat.distinct(1)
thf(fact_52_old_Onat_Odistinct_I2_J,axiom,
    ! [Nat4: nat] :
      ( ( suc @ Nat4 )
     != ( zero_zero @ nat ) ) ).

% old.nat.distinct(2)
thf(fact_53_nat_Odistinct_I1_J,axiom,
    ! [X2: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ X2 ) ) ).

% nat.distinct(1)
thf(fact_54_infinite__descent0__measure,axiom,
    ! [A: $tType,V: A > nat,P: A > $o,X3: A] :
      ( ! [X: A] :
          ( ( ( V @ X )
            = ( zero_zero @ nat ) )
         => ( P @ X ) )
     => ( ! [X: A] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( V @ X ) )
           => ( ~ ( P @ X )
             => ? [Y: A] :
                  ( ( ord_less @ nat @ ( V @ Y ) @ ( V @ X ) )
                  & ~ ( P @ Y ) ) ) )
       => ( P @ X3 ) ) ) ).

% infinite_descent0_measure
thf(fact_55_bot__nat__0_Oextremum__strict,axiom,
    ! [A2: nat] :
      ~ ( ord_less @ nat @ A2 @ ( zero_zero @ nat ) ) ).

% bot_nat_0.extremum_strict
thf(fact_56_infinite__descent0,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [N2: nat] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
           => ( ~ ( P @ N2 )
             => ? [M2: nat] :
                  ( ( ord_less @ nat @ M2 @ N2 )
                  & ~ ( P @ M2 ) ) ) )
       => ( P @ N ) ) ) ).

% infinite_descent0
thf(fact_57_gr__implies__not0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( N
       != ( zero_zero @ nat ) ) ) ).

% gr_implies_not0
thf(fact_58_less__zeroE,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_zeroE
thf(fact_59_not__less0,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% not_less0
thf(fact_60_not__gr0,axiom,
    ! [N: nat] :
      ( ( ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% not_gr0
thf(fact_61_gr0I,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
     => ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% gr0I
thf(fact_62_not__less__less__Suc__eq,axiom,
    ! [N: nat,M: nat] :
      ( ~ ( ord_less @ nat @ N @ M )
     => ( ( ord_less @ nat @ N @ ( suc @ M ) )
        = ( N = M ) ) ) ).

% not_less_less_Suc_eq
thf(fact_63_strict__inc__induct,axiom,
    ! [I: nat,J: nat,P: nat > $o] :
      ( ( ord_less @ nat @ I @ J )
     => ( ! [I2: nat] :
            ( ( J
              = ( suc @ I2 ) )
           => ( P @ I2 ) )
       => ( ! [I2: nat] :
              ( ( ord_less @ nat @ I2 @ J )
             => ( ( P @ ( suc @ I2 ) )
               => ( P @ I2 ) ) )
         => ( P @ I ) ) ) ) ).

% strict_inc_induct
thf(fact_64_less__Suc__induct,axiom,
    ! [I: nat,J: nat,P: nat > nat > $o] :
      ( ( ord_less @ nat @ I @ J )
     => ( ! [I2: nat] : ( P @ I2 @ ( suc @ I2 ) )
       => ( ! [I2: nat,J2: nat,K2: nat] :
              ( ( ord_less @ nat @ I2 @ J2 )
             => ( ( ord_less @ nat @ J2 @ K2 )
               => ( ( P @ I2 @ J2 )
                 => ( ( P @ J2 @ K2 )
                   => ( P @ I2 @ K2 ) ) ) ) )
         => ( P @ I @ J ) ) ) ) ).

% less_Suc_induct
thf(fact_65_less__trans__Suc,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less @ nat @ I @ J )
     => ( ( ord_less @ nat @ J @ K )
       => ( ord_less @ nat @ ( suc @ I ) @ K ) ) ) ).

% less_trans_Suc
thf(fact_66_Suc__less__SucD,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( suc @ M ) @ ( suc @ N ) )
     => ( ord_less @ nat @ M @ N ) ) ).

% Suc_less_SucD
thf(fact_67_less__antisym,axiom,
    ! [N: nat,M: nat] :
      ( ~ ( ord_less @ nat @ N @ M )
     => ( ( ord_less @ nat @ N @ ( suc @ M ) )
       => ( M = N ) ) ) ).

% less_antisym
thf(fact_68_Suc__less__eq2,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ ( suc @ N ) @ M )
      = ( ? [M4: nat] :
            ( ( M
              = ( suc @ M4 ) )
            & ( ord_less @ nat @ N @ M4 ) ) ) ) ).

% Suc_less_eq2
thf(fact_69_All__less__Suc,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ! [I3: nat] :
            ( ( ord_less @ nat @ I3 @ ( suc @ N ) )
           => ( P @ I3 ) ) )
      = ( ( P @ N )
        & ! [I3: nat] :
            ( ( ord_less @ nat @ I3 @ N )
           => ( P @ I3 ) ) ) ) ).

% All_less_Suc
thf(fact_70_not__less__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ~ ( ord_less @ nat @ M @ N ) )
      = ( ord_less @ nat @ N @ ( suc @ M ) ) ) ).

% not_less_eq
thf(fact_71_less__Suc__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ ( suc @ N ) )
      = ( ( ord_less @ nat @ M @ N )
        | ( M = N ) ) ) ).

% less_Suc_eq
thf(fact_72_Ex__less__Suc,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ? [I3: nat] :
            ( ( ord_less @ nat @ I3 @ ( suc @ N ) )
            & ( P @ I3 ) ) )
      = ( ( P @ N )
        | ? [I3: nat] :
            ( ( ord_less @ nat @ I3 @ N )
            & ( P @ I3 ) ) ) ) ).

% Ex_less_Suc
thf(fact_73_less__SucI,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( ord_less @ nat @ M @ ( suc @ N ) ) ) ).

% less_SucI
thf(fact_74_less__SucE,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ ( suc @ N ) )
     => ( ~ ( ord_less @ nat @ M @ N )
       => ( M = N ) ) ) ).

% less_SucE
thf(fact_75_Suc__lessI,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( ( ( suc @ M )
         != N )
       => ( ord_less @ nat @ ( suc @ M ) @ N ) ) ) ).

% Suc_lessI
thf(fact_76_Suc__lessE,axiom,
    ! [I: nat,K: nat] :
      ( ( ord_less @ nat @ ( suc @ I ) @ K )
     => ~ ! [J2: nat] :
            ( ( ord_less @ nat @ I @ J2 )
           => ( K
             != ( suc @ J2 ) ) ) ) ).

% Suc_lessE
thf(fact_77_Suc__lessD,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( suc @ M ) @ N )
     => ( ord_less @ nat @ M @ N ) ) ).

% Suc_lessD
thf(fact_78_Nat_OlessE,axiom,
    ! [I: nat,K: nat] :
      ( ( ord_less @ nat @ I @ K )
     => ( ( K
         != ( suc @ I ) )
       => ~ ! [J2: nat] :
              ( ( ord_less @ nat @ I @ J2 )
             => ( K
               != ( suc @ J2 ) ) ) ) ) ).

% Nat.lessE
thf(fact_79_nat__mult__eq__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times @ nat @ K @ M )
        = ( times_times @ nat @ K @ N ) )
      = ( ( K
          = ( zero_zero @ nat ) )
        | ( M = N ) ) ) ).

% nat_mult_eq_cancel_disj
thf(fact_80_mult__0,axiom,
    ! [N: nat] :
      ( ( times_times @ nat @ ( zero_zero @ nat ) @ N )
      = ( zero_zero @ nat ) ) ).

% mult_0
thf(fact_81_Suc__mult__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times @ nat @ ( suc @ K ) @ M )
        = ( times_times @ nat @ ( suc @ K ) @ N ) )
      = ( M = N ) ) ).

% Suc_mult_cancel1
thf(fact_82_div__mult2__eq,axiom,
    ! [M: nat,N: nat,Q: nat] :
      ( ( divide_divide @ nat @ M @ ( times_times @ nat @ N @ Q ) )
      = ( divide_divide @ nat @ ( divide_divide @ nat @ M @ N ) @ Q ) ) ).

% div_mult2_eq
thf(fact_83_lift__Suc__mono__less__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [F: nat > A,N: nat,M: nat] :
          ( ! [N2: nat] : ( ord_less @ A @ ( F @ N2 ) @ ( F @ ( suc @ N2 ) ) )
         => ( ( ord_less @ A @ ( F @ N ) @ ( F @ M ) )
            = ( ord_less @ nat @ N @ M ) ) ) ) ).

% lift_Suc_mono_less_iff
thf(fact_84_lift__Suc__mono__less,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [F: nat > A,N: nat,N3: nat] :
          ( ! [N2: nat] : ( ord_less @ A @ ( F @ N2 ) @ ( F @ ( suc @ N2 ) ) )
         => ( ( ord_less @ nat @ N @ N3 )
           => ( ord_less @ A @ ( F @ N ) @ ( F @ N3 ) ) ) ) ) ).

% lift_Suc_mono_less
thf(fact_85_less__Suc__eq__0__disj,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ ( suc @ N ) )
      = ( ( M
          = ( zero_zero @ nat ) )
        | ? [J3: nat] :
            ( ( M
              = ( suc @ J3 ) )
            & ( ord_less @ nat @ J3 @ N ) ) ) ) ).

% less_Suc_eq_0_disj
thf(fact_86_gr0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
     => ? [M3: nat] :
          ( N
          = ( suc @ M3 ) ) ) ).

% gr0_implies_Suc
thf(fact_87_All__less__Suc2,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ! [I3: nat] :
            ( ( ord_less @ nat @ I3 @ ( suc @ N ) )
           => ( P @ I3 ) ) )
      = ( ( P @ ( zero_zero @ nat ) )
        & ! [I3: nat] :
            ( ( ord_less @ nat @ I3 @ N )
           => ( P @ ( suc @ I3 ) ) ) ) ) ).

% All_less_Suc2
thf(fact_88_gr0__conv__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
      = ( ? [M5: nat] :
            ( N
            = ( suc @ M5 ) ) ) ) ).

% gr0_conv_Suc
thf(fact_89_Ex__less__Suc2,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ? [I3: nat] :
            ( ( ord_less @ nat @ I3 @ ( suc @ N ) )
            & ( P @ I3 ) ) )
      = ( ( P @ ( zero_zero @ nat ) )
        | ? [I3: nat] :
            ( ( ord_less @ nat @ I3 @ N )
            & ( P @ ( suc @ I3 ) ) ) ) ) ).

% Ex_less_Suc2
thf(fact_90_nat__mult__less__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
        = ( ord_less @ nat @ M @ N ) ) ) ).

% nat_mult_less_cancel1
thf(fact_91_nat__mult__eq__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( ( times_times @ nat @ K @ M )
          = ( times_times @ nat @ K @ N ) )
        = ( M = N ) ) ) ).

% nat_mult_eq_cancel1
thf(fact_92_mult__less__mono2,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less @ nat @ I @ J )
     => ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less @ nat @ ( times_times @ nat @ K @ I ) @ ( times_times @ nat @ K @ J ) ) ) ) ).

% mult_less_mono2
thf(fact_93_mult__less__mono1,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less @ nat @ I @ J )
     => ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less @ nat @ ( times_times @ nat @ I @ K ) @ ( times_times @ nat @ J @ K ) ) ) ) ).

% mult_less_mono1
thf(fact_94_Suc__mult__less__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( times_times @ nat @ ( suc @ K ) @ M ) @ ( times_times @ nat @ ( suc @ K ) @ N ) )
      = ( ord_less @ nat @ M @ N ) ) ).

% Suc_mult_less_cancel1
thf(fact_95_Euclidean__Division_Odiv__eq__0__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( divide_divide @ nat @ M @ N )
        = ( zero_zero @ nat ) )
      = ( ( ord_less @ nat @ M @ N )
        | ( N
          = ( zero_zero @ nat ) ) ) ) ).

% Euclidean_Division.div_eq_0_iff
thf(fact_96_Euclidean__Division_Oless__mult__imp__div__less,axiom,
    ! [M: nat,I: nat,N: nat] :
      ( ( ord_less @ nat @ M @ ( times_times @ nat @ I @ N ) )
     => ( ord_less @ nat @ ( divide_divide @ nat @ M @ N ) @ I ) ) ).

% Euclidean_Division.less_mult_imp_div_less
thf(fact_97_n__less__n__mult__m,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
     => ( ( ord_less @ nat @ ( suc @ ( zero_zero @ nat ) ) @ M )
       => ( ord_less @ nat @ N @ ( times_times @ nat @ N @ M ) ) ) ) ).

% n_less_n_mult_m
thf(fact_98_n__less__m__mult__n,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
     => ( ( ord_less @ nat @ ( suc @ ( zero_zero @ nat ) ) @ M )
       => ( ord_less @ nat @ N @ ( times_times @ nat @ M @ N ) ) ) ) ).

% n_less_m_mult_n
thf(fact_99_one__less__mult,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ ( suc @ ( zero_zero @ nat ) ) @ N )
     => ( ( ord_less @ nat @ ( suc @ ( zero_zero @ nat ) ) @ M )
       => ( ord_less @ nat @ ( suc @ ( zero_zero @ nat ) ) @ ( times_times @ nat @ M @ N ) ) ) ) ).

% one_less_mult
thf(fact_100_nat__mult__div__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( divide_divide @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
        = ( divide_divide @ nat @ M @ N ) ) ) ).

% nat_mult_div_cancel1
thf(fact_101_nonzero__mult__divide__mult__cancel__right2,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ C @ B2 ) )
            = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ).

% nonzero_mult_divide_mult_cancel_right2
thf(fact_102_nonzero__mult__div__cancel__right,axiom,
    ! [A: $tType] :
      ( ( semidom_divide @ A )
     => ! [B2: A,A2: A] :
          ( ( B2
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ A2 @ B2 ) @ B2 )
            = A2 ) ) ) ).

% nonzero_mult_div_cancel_right
thf(fact_103_nonzero__mult__divide__mult__cancel__right,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) )
            = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ).

% nonzero_mult_divide_mult_cancel_right
thf(fact_104_nonzero__mult__divide__mult__cancel__left2,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ B2 @ C ) )
            = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ).

% nonzero_mult_divide_mult_cancel_left2
thf(fact_105_nonzero__mult__div__cancel__left,axiom,
    ! [A: $tType] :
      ( ( semidom_divide @ A )
     => ! [A2: A,B2: A] :
          ( ( A2
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ A2 @ B2 ) @ A2 )
            = B2 ) ) ) ).

% nonzero_mult_div_cancel_left
thf(fact_106_nonzero__mult__divide__mult__cancel__left,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( divide_divide @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
            = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ).

% nonzero_mult_divide_mult_cancel_left
thf(fact_107_mult__divide__mult__cancel__left__if,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ( C
              = ( zero_zero @ A ) )
           => ( ( divide_divide @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
              = ( zero_zero @ A ) ) )
          & ( ( C
             != ( zero_zero @ A ) )
           => ( ( divide_divide @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
              = ( divide_divide @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_divide_mult_cancel_left_if
thf(fact_108_less__div__Suc__mult,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
     => ( ord_less @ nat @ N @ ( times_times @ nat @ ( suc @ ( divide_divide @ nat @ N @ M ) ) @ M ) ) ) ).

% less_div_Suc_mult
thf(fact_109_times__divide__eq__right,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( times_times @ A @ A2 @ ( divide_divide @ A @ B2 @ C ) )
          = ( divide_divide @ A @ ( times_times @ A @ A2 @ B2 ) @ C ) ) ) ).

% times_divide_eq_right
thf(fact_110_divide__divide__eq__right,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( divide_divide @ A @ A2 @ ( divide_divide @ A @ B2 @ C ) )
          = ( divide_divide @ A @ ( times_times @ A @ A2 @ C ) @ B2 ) ) ) ).

% divide_divide_eq_right
thf(fact_111_divide__divide__eq__left,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( divide_divide @ A @ ( divide_divide @ A @ A2 @ B2 ) @ C )
          = ( divide_divide @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% divide_divide_eq_left
thf(fact_112_mult__zero__left,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A )
     => ! [A2: A] :
          ( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% mult_zero_left
thf(fact_113_mult__zero__right,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% mult_zero_right
thf(fact_114_mult__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
            = ( zero_zero @ A ) )
          = ( ( A2
              = ( zero_zero @ A ) )
            | ( B2
              = ( zero_zero @ A ) ) ) ) ) ).

% mult_eq_0_iff
thf(fact_115_mult__cancel__left,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ( times_times @ A @ C @ A2 )
            = ( times_times @ A @ C @ B2 ) )
          = ( ( C
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% mult_cancel_left
thf(fact_116_mult__cancel__right,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A )
     => ! [A2: A,C: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ C )
            = ( times_times @ A @ B2 @ C ) )
          = ( ( C
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% mult_cancel_right
thf(fact_117_div__0,axiom,
    ! [A: $tType] :
      ( ( semidom_divide @ A )
     => ! [A2: A] :
          ( ( divide_divide @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% div_0
thf(fact_118_divide__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [A2: A,B2: A] :
          ( ( ( divide_divide @ A @ A2 @ B2 )
            = ( zero_zero @ A ) )
          = ( ( A2
              = ( zero_zero @ A ) )
            | ( B2
              = ( zero_zero @ A ) ) ) ) ) ).

% divide_eq_0_iff
thf(fact_119_div__by__0,axiom,
    ! [A: $tType] :
      ( ( semidom_divide @ A )
     => ! [A2: A] :
          ( ( divide_divide @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% div_by_0
thf(fact_120_divide__cancel__left,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ( divide_divide @ A @ C @ A2 )
            = ( divide_divide @ A @ C @ B2 ) )
          = ( ( C
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% divide_cancel_left
thf(fact_121_divide__cancel__right,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [A2: A,C: A,B2: A] :
          ( ( ( divide_divide @ A @ A2 @ C )
            = ( divide_divide @ A @ B2 @ C ) )
          = ( ( C
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% divide_cancel_right
thf(fact_122_division__ring__divide__zero,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A] :
          ( ( divide_divide @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% division_ring_divide_zero
thf(fact_123_times__divide__eq__left,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [B2: A,C: A,A2: A] :
          ( ( times_times @ A @ ( divide_divide @ A @ B2 @ C ) @ A2 )
          = ( divide_divide @ A @ ( times_times @ A @ B2 @ A2 ) @ C ) ) ) ).

% times_divide_eq_left
thf(fact_124_linordered__field__no__lb,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X4: A] :
        ? [Y4: A] : ( ord_less @ A @ Y4 @ X4 ) ) ).

% linordered_field_no_lb
thf(fact_125_linordered__field__no__ub,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X4: A] :
        ? [X_1: A] : ( ord_less @ A @ X4 @ X_1 ) ) ).

% linordered_field_no_ub
thf(fact_126_linorder__neqE__linordered__idom,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [X3: A,Y3: A] :
          ( ( X3 != Y3 )
         => ( ~ ( ord_less @ A @ X3 @ Y3 )
           => ( ord_less @ A @ Y3 @ X3 ) ) ) ) ).

% linorder_neqE_linordered_idom
thf(fact_127_mult__not__zero,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
           != ( zero_zero @ A ) )
         => ( ( A2
             != ( zero_zero @ A ) )
            & ( B2
             != ( zero_zero @ A ) ) ) ) ) ).

% mult_not_zero
thf(fact_128_divisors__zero,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
            = ( zero_zero @ A ) )
         => ( ( A2
              = ( zero_zero @ A ) )
            | ( B2
              = ( zero_zero @ A ) ) ) ) ) ).

% divisors_zero
thf(fact_129_no__zero__divisors,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A )
     => ! [A2: A,B2: A] :
          ( ( A2
           != ( zero_zero @ A ) )
         => ( ( B2
             != ( zero_zero @ A ) )
           => ( ( times_times @ A @ A2 @ B2 )
             != ( zero_zero @ A ) ) ) ) ) ).

% no_zero_divisors
thf(fact_130_mult__left__cancel,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( ( times_times @ A @ C @ A2 )
              = ( times_times @ A @ C @ B2 ) )
            = ( A2 = B2 ) ) ) ) ).

% mult_left_cancel
thf(fact_131_mult__right__cancel,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( ( times_times @ A @ A2 @ C )
              = ( times_times @ A @ B2 @ C ) )
            = ( A2 = B2 ) ) ) ) ).

% mult_right_cancel
thf(fact_132_times__divide__times__eq,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [X3: A,Y3: A,Z: A,W: A] :
          ( ( times_times @ A @ ( divide_divide @ A @ X3 @ Y3 ) @ ( divide_divide @ A @ Z @ W ) )
          = ( divide_divide @ A @ ( times_times @ A @ X3 @ Z ) @ ( times_times @ A @ Y3 @ W ) ) ) ) ).

% times_divide_times_eq
thf(fact_133_divide__divide__times__eq,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [X3: A,Y3: A,Z: A,W: A] :
          ( ( divide_divide @ A @ ( divide_divide @ A @ X3 @ Y3 ) @ ( divide_divide @ A @ Z @ W ) )
          = ( divide_divide @ A @ ( times_times @ A @ X3 @ W ) @ ( times_times @ A @ Y3 @ Z ) ) ) ) ).

% divide_divide_times_eq
thf(fact_134_divide__divide__eq__left_H,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( divide_divide @ A @ ( divide_divide @ A @ A2 @ B2 ) @ C )
          = ( divide_divide @ A @ A2 @ ( times_times @ A @ C @ B2 ) ) ) ) ).

% divide_divide_eq_left'
thf(fact_135_mult__neg__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_neg_neg
thf(fact_136_not__square__less__zero,axiom,
    ! [A: $tType] :
      ( ( linordered_ring @ A )
     => ! [A2: A] :
          ~ ( ord_less @ A @ ( times_times @ A @ A2 @ A2 ) @ ( zero_zero @ A ) ) ) ).

% not_square_less_zero
thf(fact_137_mult__less__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% mult_less_0_iff
thf(fact_138_mult__neg__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_neg_pos
thf(fact_139_mult__pos__neg,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_pos_neg
thf(fact_140_mult__pos__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_pos_pos
thf(fact_141_mult__pos__neg2,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ B2 @ A2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_pos_neg2
thf(fact_142_zero__less__mult__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% zero_less_mult_iff
thf(fact_143_zero__less__mult__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).

% zero_less_mult_pos
thf(fact_144_zero__less__mult__pos2,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [B2: A,A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ B2 @ A2 ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).

% zero_less_mult_pos2
thf(fact_145_mult__less__cancel__left__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
            = ( ord_less @ A @ B2 @ A2 ) ) ) ) ).

% mult_less_cancel_left_neg
thf(fact_146_mult__less__cancel__left__pos,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
         => ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
            = ( ord_less @ A @ A2 @ B2 ) ) ) ) ).

% mult_less_cancel_left_pos
thf(fact_147_mult__strict__left__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_strict_left_mono_neg
thf(fact_148_mult__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_strict_left_mono
thf(fact_149_mult__less__cancel__left__disj,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
              & ( ord_less @ A @ A2 @ B2 ) )
            | ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% mult_less_cancel_left_disj
thf(fact_150_mult__strict__right__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_strict_right_mono_neg
thf(fact_151_mult__strict__right__mono,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_strict_right_mono
thf(fact_152_mult__less__cancel__right__disj,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [A2: A,C: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
              & ( ord_less @ A @ A2 @ B2 ) )
            | ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% mult_less_cancel_right_disj
thf(fact_153_linordered__comm__semiring__strict__class_Ocomm__mult__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( linord893533164strict @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% linordered_comm_semiring_strict_class.comm_mult_strict_left_mono
thf(fact_154_divide__neg__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less @ A @ X3 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ Y3 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( divide_divide @ A @ X3 @ Y3 ) ) ) ) ) ).

% divide_neg_neg
thf(fact_155_divide__neg__pos,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less @ A @ X3 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ Y3 )
           => ( ord_less @ A @ ( divide_divide @ A @ X3 @ Y3 ) @ ( zero_zero @ A ) ) ) ) ) ).

% divide_neg_pos
thf(fact_156_divide__pos__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ X3 )
         => ( ( ord_less @ A @ Y3 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( divide_divide @ A @ X3 @ Y3 ) @ ( zero_zero @ A ) ) ) ) ) ).

% divide_pos_neg
thf(fact_157_divide__pos__pos,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ X3 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ Y3 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( divide_divide @ A @ X3 @ Y3 ) ) ) ) ) ).

% divide_pos_pos
thf(fact_158_divide__less__0__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( divide_divide @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% divide_less_0_iff
thf(fact_159_divide__less__cancel,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,C: A,B2: A] :
          ( ( ord_less @ A @ ( divide_divide @ A @ A2 @ C ) @ ( divide_divide @ A @ B2 @ C ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
             => ( ord_less @ A @ A2 @ B2 ) )
            & ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
             => ( ord_less @ A @ B2 @ A2 ) )
            & ( C
             != ( zero_zero @ A ) ) ) ) ) ).

% divide_less_cancel
thf(fact_160_zero__less__divide__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( divide_divide @ A @ A2 @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% zero_less_divide_iff
thf(fact_161_divide__strict__right__mono,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less @ A @ ( divide_divide @ A @ A2 @ C ) @ ( divide_divide @ A @ B2 @ C ) ) ) ) ) ).

% divide_strict_right_mono
thf(fact_162_divide__strict__right__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( divide_divide @ A @ A2 @ C ) @ ( divide_divide @ A @ B2 @ C ) ) ) ) ) ).

% divide_strict_right_mono_neg
thf(fact_163_frac__eq__eq,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ! [Y3: A,Z: A,X3: A,W: A] :
          ( ( Y3
           != ( zero_zero @ A ) )
         => ( ( Z
             != ( zero_zero @ A ) )
           => ( ( ( divide_divide @ A @ X3 @ Y3 )
                = ( divide_divide @ A @ W @ Z ) )
              = ( ( times_times @ A @ X3 @ Z )
                = ( times_times @ A @ W @ Y3 ) ) ) ) ) ) ).

% frac_eq_eq
thf(fact_164_divide__eq__eq,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [B2: A,C: A,A2: A] :
          ( ( ( divide_divide @ A @ B2 @ C )
            = A2 )
          = ( ( ( C
               != ( zero_zero @ A ) )
             => ( B2
                = ( times_times @ A @ A2 @ C ) ) )
            & ( ( C
                = ( zero_zero @ A ) )
             => ( A2
                = ( zero_zero @ A ) ) ) ) ) ) ).

% divide_eq_eq
thf(fact_165_eq__divide__eq,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( A2
            = ( divide_divide @ A @ B2 @ C ) )
          = ( ( ( C
               != ( zero_zero @ A ) )
             => ( ( times_times @ A @ A2 @ C )
                = B2 ) )
            & ( ( C
                = ( zero_zero @ A ) )
             => ( A2
                = ( zero_zero @ A ) ) ) ) ) ) ).

% eq_divide_eq
thf(fact_166_divide__eq__imp,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [C: A,B2: A,A2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( B2
              = ( times_times @ A @ A2 @ C ) )
           => ( ( divide_divide @ A @ B2 @ C )
              = A2 ) ) ) ) ).

% divide_eq_imp
thf(fact_167_eq__divide__imp,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( ( times_times @ A @ A2 @ C )
              = B2 )
           => ( A2
              = ( divide_divide @ A @ B2 @ C ) ) ) ) ) ).

% eq_divide_imp
thf(fact_168_nonzero__divide__eq__eq,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [C: A,B2: A,A2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( ( divide_divide @ A @ B2 @ C )
              = A2 )
            = ( B2
              = ( times_times @ A @ A2 @ C ) ) ) ) ) ).

% nonzero_divide_eq_eq
thf(fact_169_nonzero__eq__divide__eq,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( A2
              = ( divide_divide @ A @ B2 @ C ) )
            = ( ( times_times @ A @ A2 @ C )
              = B2 ) ) ) ) ).

% nonzero_eq_divide_eq
thf(fact_170_div__eq__0__conv,axiom,
    ! [N: nat,M: nat] :
      ( ( ( divide_divide @ nat @ N @ M )
        = ( zero_zero @ nat ) )
      = ( ( M
          = ( zero_zero @ nat ) )
        | ( ord_less @ nat @ N @ M ) ) ) ).

% div_eq_0_conv
thf(fact_171_div__eq__0__conv_H,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
     => ( ( ( divide_divide @ nat @ N @ M )
          = ( zero_zero @ nat ) )
        = ( ord_less @ nat @ N @ M ) ) ) ).

% div_eq_0_conv'
thf(fact_172_Util__Div_Oless__mult__imp__div__less,axiom,
    ! [N: nat,K: nat,M: nat] :
      ( ( ord_less @ nat @ N @ ( times_times @ nat @ K @ M ) )
     => ( ord_less @ nat @ ( divide_divide @ nat @ N @ M ) @ K ) ) ).

% Util_Div.less_mult_imp_div_less
thf(fact_173_divide__less__eq,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [B2: A,C: A,A2: A] :
          ( ( ord_less @ A @ ( divide_divide @ A @ B2 @ C ) @ A2 )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
             => ( ord_less @ A @ B2 @ ( times_times @ A @ A2 @ C ) ) )
            & ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ C )
             => ( ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
                 => ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ B2 ) )
                & ( ~ ( ord_less @ A @ C @ ( zero_zero @ A ) )
                 => ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ) ) ) ) ).

% divide_less_eq
thf(fact_174_less__divide__eq,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ ( divide_divide @ A @ B2 @ C ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
             => ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ B2 ) )
            & ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ C )
             => ( ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
                 => ( ord_less @ A @ B2 @ ( times_times @ A @ A2 @ C ) ) )
                & ( ~ ( ord_less @ A @ C @ ( zero_zero @ A ) )
                 => ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ) ) ) ) ).

% less_divide_eq
thf(fact_175_neg__divide__less__eq,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [C: A,B2: A,A2: A] :
          ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( divide_divide @ A @ B2 @ C ) @ A2 )
            = ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ B2 ) ) ) ) ).

% neg_divide_less_eq
thf(fact_176_neg__less__divide__eq,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ A2 @ ( divide_divide @ A @ B2 @ C ) )
            = ( ord_less @ A @ B2 @ ( times_times @ A @ A2 @ C ) ) ) ) ) ).

% neg_less_divide_eq
thf(fact_177_pos__divide__less__eq,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [C: A,B2: A,A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
         => ( ( ord_less @ A @ ( divide_divide @ A @ B2 @ C ) @ A2 )
            = ( ord_less @ A @ B2 @ ( times_times @ A @ A2 @ C ) ) ) ) ) ).

% pos_divide_less_eq
thf(fact_178_pos__less__divide__eq,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
         => ( ( ord_less @ A @ A2 @ ( divide_divide @ A @ B2 @ C ) )
            = ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ B2 ) ) ) ) ).

% pos_less_divide_eq
thf(fact_179_mult__imp__div__pos__less,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [Y3: A,X3: A,Z: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ Y3 )
         => ( ( ord_less @ A @ X3 @ ( times_times @ A @ Z @ Y3 ) )
           => ( ord_less @ A @ ( divide_divide @ A @ X3 @ Y3 ) @ Z ) ) ) ) ).

% mult_imp_div_pos_less
thf(fact_180_mult__imp__less__div__pos,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [Y3: A,Z: A,X3: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ Y3 )
         => ( ( ord_less @ A @ ( times_times @ A @ Z @ Y3 ) @ X3 )
           => ( ord_less @ A @ Z @ ( divide_divide @ A @ X3 @ Y3 ) ) ) ) ) ).

% mult_imp_less_div_pos
thf(fact_181_divide__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
             => ( ord_less @ A @ ( divide_divide @ A @ C @ A2 ) @ ( divide_divide @ A @ C @ B2 ) ) ) ) ) ) ).

% divide_strict_left_mono
thf(fact_182_divide__strict__left__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
           => ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
             => ( ord_less @ A @ ( divide_divide @ A @ C @ A2 ) @ ( divide_divide @ A @ C @ B2 ) ) ) ) ) ) ).

% divide_strict_left_mono_neg
thf(fact_183_div__less__conv,axiom,
    ! [M: nat,N: nat,K: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
     => ( ( ord_less @ nat @ ( divide_divide @ nat @ N @ M ) @ K )
        = ( ord_less @ nat @ N @ ( times_times @ nat @ K @ M ) ) ) ) ).

% div_less_conv
thf(fact_184_div__less__imp__less__mult,axiom,
    ! [M: nat,N: nat,K: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
     => ( ( ord_less @ nat @ ( divide_divide @ nat @ N @ M ) @ K )
       => ( ord_less @ nat @ N @ ( times_times @ nat @ K @ M ) ) ) ) ).

% div_less_imp_less_mult
thf(fact_185_bits__div__0,axiom,
    ! [A: $tType] :
      ( ( semiring_bits @ A )
     => ! [A2: A] :
          ( ( divide_divide @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% bits_div_0
thf(fact_186_bits__div__by__0,axiom,
    ! [A: $tType] :
      ( ( semiring_bits @ A )
     => ! [A2: A] :
          ( ( divide_divide @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% bits_div_by_0
thf(fact_187_not__gr__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ N ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% not_gr_zero
thf(fact_188_mult__cancel2__gr0,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( ( times_times @ nat @ M @ K )
          = ( times_times @ nat @ N @ K ) )
        = ( M = N ) ) ) ).

% mult_cancel2_gr0
thf(fact_189_zero__reorient,axiom,
    ! [A: $tType] :
      ( ( zero @ A )
     => ! [X3: A] :
          ( ( ( zero_zero @ A )
            = X3 )
          = ( X3
            = ( zero_zero @ A ) ) ) ) ).

% zero_reorient
thf(fact_190_mult_Oleft__commute,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A )
     => ! [B2: A,A2: A,C: A] :
          ( ( times_times @ A @ B2 @ ( times_times @ A @ A2 @ C ) )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% mult.left_commute
thf(fact_191_mult_Ocommute,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A )
     => ( ( times_times @ A )
        = ( ^ [A3: A,B3: A] : ( times_times @ A @ B3 @ A3 ) ) ) ) ).

% mult.commute
thf(fact_192_mult_Oassoc,axiom,
    ! [A: $tType] :
      ( ( semigroup_mult @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% mult.assoc
thf(fact_193_ab__semigroup__mult__class_Omult__ac_I1_J,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% ab_semigroup_mult_class.mult_ac(1)
thf(fact_194_zero__less__iff__neq__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ N )
          = ( N
           != ( zero_zero @ A ) ) ) ) ).

% zero_less_iff_neq_zero
thf(fact_195_gr__implies__not__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [M: A,N: A] :
          ( ( ord_less @ A @ M @ N )
         => ( N
           != ( zero_zero @ A ) ) ) ) ).

% gr_implies_not_zero
thf(fact_196_not__less__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ~ ( ord_less @ A @ N @ ( zero_zero @ A ) ) ) ).

% not_less_zero
thf(fact_197_gr__zeroI,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( N
           != ( zero_zero @ A ) )
         => ( ord_less @ A @ ( zero_zero @ A ) @ N ) ) ) ).

% gr_zeroI
thf(fact_198_gr__implies__gr0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% gr_implies_gr0
thf(fact_199_nat__lessSucSuc0__conv,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ N @ ( suc @ ( suc @ ( zero_zero @ nat ) ) ) )
      = ( ( N
          = ( zero_zero @ nat ) )
        | ( N
          = ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% nat_lessSucSuc0_conv
thf(fact_200_nat__grSuc0__conv,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ ( suc @ ( zero_zero @ nat ) ) @ N )
      = ( ( N
         != ( zero_zero @ nat ) )
        & ( N
         != ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% nat_grSuc0_conv
thf(fact_201_mult__less__iff1,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [Z: A,X3: A,Y3: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ Z )
         => ( ( ord_less @ A @ ( times_times @ A @ X3 @ Z ) @ ( times_times @ A @ Y3 @ Z ) )
            = ( ord_less @ A @ X3 @ Y3 ) ) ) ) ).

% mult_less_iff1
thf(fact_202_length__induct,axiom,
    ! [A: $tType,P: ( list @ A ) > $o,Xs: list @ A] :
      ( ! [Xs2: list @ A] :
          ( ! [Ys: list @ A] :
              ( ( ord_less @ nat @ ( size_size @ ( list @ A ) @ Ys ) @ ( size_size @ ( list @ A ) @ Xs2 ) )
             => ( P @ Ys ) )
         => ( P @ Xs2 ) )
     => ( P @ Xs ) ) ).

% length_induct
thf(fact_203_Ex__list__of__length,axiom,
    ! [A: $tType,N: nat] :
    ? [Xs2: list @ A] :
      ( ( size_size @ ( list @ A ) @ Xs2 )
      = N ) ).

% Ex_list_of_length
thf(fact_204_neq__if__length__neq,axiom,
    ! [A: $tType,Xs: list @ A,Ys2: list @ A] :
      ( ( ( size_size @ ( list @ A ) @ Xs )
       != ( size_size @ ( list @ A ) @ Ys2 ) )
     => ( Xs != Ys2 ) ) ).

% neq_if_length_neq
thf(fact_205_list__decode_Ocases,axiom,
    ! [X3: nat] :
      ( ( X3
       != ( zero_zero @ nat ) )
     => ~ ! [N2: nat] :
            ( X3
           != ( suc @ N2 ) ) ) ).

% list_decode.cases
thf(fact_206_dependent__nat__choice,axiom,
    ! [A: $tType,P: nat > A > $o,Q2: nat > A > A > $o] :
      ( ? [X_12: A] : ( P @ ( zero_zero @ nat ) @ X_12 )
     => ( ! [X: A,N2: nat] :
            ( ( P @ N2 @ X )
           => ? [Y: A] :
                ( ( P @ ( suc @ N2 ) @ Y )
                & ( Q2 @ N2 @ X @ Y ) ) )
       => ? [F2: nat > A] :
          ! [N4: nat] :
            ( ( P @ N4 @ ( F2 @ N4 ) )
            & ( Q2 @ N4 @ ( F2 @ N4 ) @ ( F2 @ ( suc @ N4 ) ) ) ) ) ) ).

% dependent_nat_choice
thf(fact_207_exists__least__lemma,axiom,
    ! [P: nat > $o] :
      ( ~ ( P @ ( zero_zero @ nat ) )
     => ( ? [X_12: nat] : ( P @ X_12 )
       => ? [N2: nat] :
            ( ~ ( P @ N2 )
            & ( P @ ( suc @ N2 ) ) ) ) ) ).

% exists_least_lemma
thf(fact_208_field__lbound__gt__zero,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [D1: A,D2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ D1 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ D2 )
           => ? [E: A] :
                ( ( ord_less @ A @ ( zero_zero @ A ) @ E )
                & ( ord_less @ A @ E @ D1 )
                & ( ord_less @ A @ E @ D2 ) ) ) ) ) ).

% field_lbound_gt_zero
thf(fact_209_less__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ~ ( ord_less @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% less_numeral_extra(3)
thf(fact_210_length__product,axiom,
    ! [A: $tType,B: $tType,Xs: list @ A,Ys2: list @ B] :
      ( ( size_size @ ( list @ ( product_prod @ A @ B ) ) @ ( product @ A @ B @ Xs @ Ys2 ) )
      = ( times_times @ nat @ ( size_size @ ( list @ A ) @ Xs ) @ ( size_size @ ( list @ B ) @ Ys2 ) ) ) ).

% length_product
thf(fact_211_split__div_H,axiom,
    ! [P: nat > $o,M: nat,N: nat] :
      ( ( P @ ( divide_divide @ nat @ M @ N ) )
      = ( ( ( N
            = ( zero_zero @ nat ) )
          & ( P @ ( zero_zero @ nat ) ) )
        | ? [Q3: nat] :
            ( ( ord_less_eq @ nat @ ( times_times @ nat @ N @ Q3 ) @ M )
            & ( ord_less @ nat @ M @ ( times_times @ nat @ N @ ( suc @ Q3 ) ) )
            & ( P @ Q3 ) ) ) ) ).

% split_div'
thf(fact_212_le__less__div__conv,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
     => ( ( ( ord_less_eq @ nat @ ( times_times @ nat @ K @ M ) @ N )
          & ( ord_less @ nat @ N @ ( times_times @ nat @ ( suc @ K ) @ M ) ) )
        = ( ( divide_divide @ nat @ N @ M )
          = K ) ) ) ).

% le_less_div_conv
thf(fact_213_le__zero__eq,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( ord_less_eq @ A @ N @ ( zero_zero @ A ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% le_zero_eq
thf(fact_214_bot__nat__0_Oextremum,axiom,
    ! [A2: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ A2 ) ).

% bot_nat_0.extremum
thf(fact_215_le0,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).

% le0
thf(fact_216_Suc__le__mono,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_eq @ nat @ ( suc @ N ) @ ( suc @ M ) )
      = ( ord_less_eq @ nat @ N @ M ) ) ).

% Suc_le_mono
thf(fact_217_one__le__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ ( times_times @ nat @ M @ N ) )
      = ( ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ M )
        & ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ N ) ) ) ).

% one_le_mult_iff
thf(fact_218_mult__le__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( times_times @ nat @ M @ K ) @ ( times_times @ nat @ N @ K ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less_eq @ nat @ M @ N ) ) ) ).

% mult_le_cancel2
thf(fact_219_nat__mult__le__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less_eq @ nat @ M @ N ) ) ) ).

% nat_mult_le_cancel_disj
thf(fact_220_le__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% le_numeral_extra(3)
thf(fact_221_zero__le,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [X3: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ X3 ) ) ).

% zero_le
thf(fact_222_ge__less__neq__conv,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [A3: A,N5: A] :
            ! [X5: A] :
              ( ( ord_less @ A @ X5 @ A3 )
             => ( N5 != X5 ) ) ) ) ) ).

% ge_less_neq_conv
thf(fact_223_less__ge__neq__conv,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ( ( ord_less @ A )
        = ( ^ [N5: A,A3: A] :
            ! [X5: A] :
              ( ( ord_less_eq @ A @ A3 @ X5 )
             => ( N5 != X5 ) ) ) ) ) ).

% less_ge_neq_conv
thf(fact_224_greater__le__neq__conv,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ( ( ord_less @ A )
        = ( ^ [A3: A,N5: A] :
            ! [X5: A] :
              ( ( ord_less_eq @ A @ X5 @ A3 )
             => ( N5 != X5 ) ) ) ) ) ).

% greater_le_neq_conv
thf(fact_225_le__greater__neq__conv,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [N5: A,A3: A] :
            ! [X5: A] :
              ( ( ord_less @ A @ A3 @ X5 )
             => ( N5 != X5 ) ) ) ) ) ).

% le_greater_neq_conv
thf(fact_226_nat__geSucSuc0__conv,axiom,
    ! [N: nat] :
      ( ( ord_less_eq @ nat @ ( suc @ ( suc @ ( zero_zero @ nat ) ) ) @ N )
      = ( ( N
         != ( zero_zero @ nat ) )
        & ( N
         != ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% nat_geSucSuc0_conv
thf(fact_227_nat__leSuc0__conv,axiom,
    ! [N: nat] :
      ( ( ord_less_eq @ nat @ N @ ( suc @ ( zero_zero @ nat ) ) )
      = ( ( N
          = ( zero_zero @ nat ) )
        | ( N
          = ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% nat_leSuc0_conv
thf(fact_228_ordered__comm__semiring__class_Ocomm__mult__left__mono,axiom,
    ! [A: $tType] :
      ( ( ordere1490568538miring @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% ordered_comm_semiring_class.comm_mult_left_mono
thf(fact_229_zero__le__mult__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
          = ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% zero_le_mult_iff
thf(fact_230_mult__nonneg__nonpos2,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ B2 @ A2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_nonneg_nonpos2
thf(fact_231_mult__nonpos__nonneg,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_nonpos_nonneg
thf(fact_232_mult__nonneg__nonpos,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_nonneg_nonpos
thf(fact_233_mult__nonneg__nonneg,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_nonneg_nonneg
thf(fact_234_split__mult__neg__le,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A )
     => ! [A2: A,B2: A] :
          ( ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) )
         => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ).

% split_mult_neg_le
thf(fact_235_mult__le__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% mult_le_0_iff
thf(fact_236_mult__right__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_right_mono
thf(fact_237_mult__right__mono__neg,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_right_mono_neg
thf(fact_238_mult__left__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_left_mono
thf(fact_239_mult__nonpos__nonpos,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_nonpos_nonpos
thf(fact_240_mult__left__mono__neg,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_left_mono_neg
thf(fact_241_split__mult__pos__le,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A )
     => ! [A2: A,B2: A] :
          ( ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) ) )
         => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ).

% split_mult_pos_le
thf(fact_242_zero__le__square,axiom,
    ! [A: $tType] :
      ( ( linordered_ring @ A )
     => ! [A2: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ A2 ) ) ) ).

% zero_le_square
thf(fact_243_mult__mono_H,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A )
     => ! [A2: A,B2: A,C: A,D: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ C @ D )
           => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
             => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
               => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ) ) ).

% mult_mono'
thf(fact_244_mult__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A )
     => ! [A2: A,B2: A,C: A,D: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ C @ D )
           => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
             => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
               => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ) ) ).

% mult_mono
thf(fact_245_divide__right__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( divide_divide @ A @ B2 @ C ) @ ( divide_divide @ A @ A2 @ C ) ) ) ) ) ).

% divide_right_mono_neg
thf(fact_246_divide__nonpos__nonpos,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less_eq @ A @ X3 @ ( zero_zero @ A ) )
         => ( ( ord_less_eq @ A @ Y3 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( divide_divide @ A @ X3 @ Y3 ) ) ) ) ) ).

% divide_nonpos_nonpos
thf(fact_247_divide__nonpos__nonneg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less_eq @ A @ X3 @ ( zero_zero @ A ) )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ Y3 )
           => ( ord_less_eq @ A @ ( divide_divide @ A @ X3 @ Y3 ) @ ( zero_zero @ A ) ) ) ) ) ).

% divide_nonpos_nonneg
thf(fact_248_divide__nonneg__nonpos,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ X3 )
         => ( ( ord_less_eq @ A @ Y3 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( divide_divide @ A @ X3 @ Y3 ) @ ( zero_zero @ A ) ) ) ) ) ).

% divide_nonneg_nonpos
thf(fact_249_divide__nonneg__nonneg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X3: A,Y3: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ X3 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ Y3 )
           => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( divide_divide @ A @ X3 @ Y3 ) ) ) ) ) ).

% divide_nonneg_nonneg
thf(fact_250_zero__le__divide__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( divide_divide @ A @ A2 @ B2 ) )
          = ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% zero_le_divide_iff
thf(fact_251_divide__right__mono,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less_eq @ A @ ( divide_divide @ A @ A2 @ C ) @ ( divide_divide @ A @ B2 @ C ) ) ) ) ) ).

% divide_right_mono
thf(fact_252_divide__le__0__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( divide_divide @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% divide_le_0_iff

% Type constructors (25)
thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A4: $tType,A5: $tType] :
      ( ( order @ A5 )
     => ( order @ ( A4 > A5 ) ) ) ).

thf(tcon_Nat_Onat___Euclidean__Division_Oeuclidean__semiring__cancel,axiom,
    euclid191655569cancel @ nat ).

thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors__cancel,axiom,
    semiri1923998003cancel @ nat ).

thf(tcon_Nat_Onat___Rings_Olinordered__comm__semiring__strict,axiom,
    linord893533164strict @ nat ).

thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
    canoni770627133id_add @ nat ).

thf(tcon_Nat_Onat___Rings_Olinordered__nonzero__semiring,axiom,
    linord1659791738miring @ nat ).

thf(tcon_Nat_Onat___Rings_Olinordered__semiring__strict,axiom,
    linord20386208strict @ nat ).

thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors,axiom,
    semiri1193490041visors @ nat ).

thf(tcon_Nat_Onat___Rings_Oordered__comm__semiring,axiom,
    ordere1490568538miring @ nat ).

thf(tcon_Nat_Onat___Rings_Oordered__semiring__0,axiom,
    ordered_semiring_0 @ nat ).

thf(tcon_Nat_Onat___Groups_Oab__semigroup__mult,axiom,
    ab_semigroup_mult @ nat ).

thf(tcon_Nat_Onat___Rings_Oordered__semiring,axiom,
    ordered_semiring @ nat ).

thf(tcon_Nat_Onat___Groups_Osemigroup__mult,axiom,
    semigroup_mult @ nat ).

thf(tcon_Nat_Onat___Rings_Osemidom__divide,axiom,
    semidom_divide @ nat ).

thf(tcon_Nat_Onat___Parity_Osemiring__bits,axiom,
    semiring_bits @ nat ).

thf(tcon_Nat_Onat___Orderings_Owellorder,axiom,
    wellorder @ nat ).

thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
    linorder @ nat ).

thf(tcon_Nat_Onat___Rings_Omult__zero,axiom,
    mult_zero @ nat ).

thf(tcon_Nat_Onat___Orderings_Oorder_1,axiom,
    order @ nat ).

thf(tcon_Nat_Onat___Groups_Ozero,axiom,
    zero @ nat ).

thf(tcon_Nat_Onat___Nat_Osize,axiom,
    size @ nat ).

thf(tcon_HOL_Obool___Orderings_Olinorder_2,axiom,
    linorder @ $o ).

thf(tcon_HOL_Obool___Orderings_Oorder_3,axiom,
    order @ $o ).

thf(tcon_List_Olist___Nat_Osize_4,axiom,
    ! [A4: $tType] : ( size @ ( list @ A4 ) ) ).

thf(tcon_Product__Type_Oprod___Nat_Osize_5,axiom,
    ! [A4: $tType,A5: $tType] : ( size @ ( product_prod @ A4 @ A5 ) ) ).

% Conjectures (3)
thf(conj_0,hypothesis,
    ( ( divide_divide @ nat @ ( size_size @ ( list @ a ) @ xs ) @ k )
    = ( suc @ n ) ) ).

thf(conj_1,hypothesis,
    ( k
   != ( zero_zero @ nat ) ) ).

thf(conj_2,conjecture,
    ord_less @ nat @ ( times_times @ nat @ n @ k ) @ ( size_size @ ( list @ a ) @ xs ) ).

%------------------------------------------------------------------------------